package sysinit

import (
	"log"
	"os"

	// _ "github.com/jinzhu/gorm/dialects/mysql"
	_ "github.com/jinzhu/gorm/dialects/postgres"
	"github.com/spf13/viper"
	// _ "github.com/jinzhu/gorm/dialects/sqlite3"
)

// Config 配置文件
var Config *viper.Viper

// InitConf 初始化读取配置文件
func InitConf() {
	// vipper读取config.yaml
	// SetConfigName: config文件名(无后缀)
	// SetConfigType: config文件类型(yaml)
	// AddConfigPath: config文件搜索目录，可添加多条
	Config = viper.New()
	Config.SetConfigName("config")
	Config.SetConfigType("yaml")
	Config.AddConfigPath(".")
	if err := Config.ReadInConfig(); err != nil {
		log.Fatal(err)
	}
	// Create Directory
	if _, err := os.Stat(Config.GetString("path.upload")); os.IsNotExist(err) {
		if err = os.MkdirAll(Config.GetString("path.upload"), 0666); err != nil {
			log.Fatal(err)
		}
	}
	if _, err := os.Stat(Config.GetString("path.log")); os.IsNotExist(err) {
		if err = os.MkdirAll(Config.GetString("path.log"), 0666); err != nil {
			log.Fatal(err)
		}
	}
}
